/*
    文件内容: 封装网络地址类
    文件名: InetAddress.h
    作者: 中国好青年(码农论坛)
    时间: 2024/9/5

*/
#pragma once

#include <arpa/inet.h>
#include <netinet/in.h>
#include <string>

/*
    类名: InetAddress
    作用: 封装网络配置等操作
*/
class InetAddress
{
private:
    struct sockaddr_in addr_;
public:
    /* 构造函数 和 析构函数 */
    InetAddress(const std::string &ip, const uint16_t port);
    InetAddress(const struct sockaddr_in addr);
    InetAddress();
    ~InetAddress();

    /* InetAddress获取网络函数 */
    const char* ip()const;
    uint16_t port()const;
    const sockaddr* addr()const;
    void setaddr(struct sockaddr_in clientaddr);
};